package com.example.mysql.学习笔记.高级.备份.主从复制;

public class 概述_1 {
}
/**
 *1.1如何提升数据库并发能力    最先考虑sql优化-》表结构-》系统配置-》硬件
 * 在实际工作中，我们常常将 Redis 作为缓存与MySQL配合来使用，
 * 当有请求的时候，首先会从缓存中进行查找，如果存在就直接取出。
 * 如果不存在再访问数据库,这样就提升了读取的效率，也减少了对后端数据库的访问压力。
 * Redis 的缓存架构是"高并发架构"中非常重要的一环。
 *
 * 此外，一般应用对数据库而言都是“读多写少”,他就说对数据库读取数据的压力比较大，
 * 有一个思路就是采用数据库集群的方案，
 * 做主从架构、进行读写分离,这样同样可以提升数据库的并发处理能力。
 * 但并不是所有的应用都需要对数据库进行主从架构的设置，毕竟设置架构本身是有成本的。
 *
 * 如果我们的目的在于提升数据库高并发访问的效率,
 * 那么首先考虑的是如何优化SQL和索引，这种方式简单有效;
 * 其次才是采用缓存的策略，
 * 比如使用Redis将热点数据保存在内存数据库中，提升读取的效率;
 * 最后才是对数据库采用主从架构，进行读写分离。
 * 按照上面的方式进行优化，使用和维护的成本是由低到高的。
 *
 *
 */
/**
 * 1.2主从复制的作用
 * 主从同步设计不仅可以提高数据库的吞吐量，还有以下3个方面的作用。
 *
 * 第1个作用:读写分离。
 *     我们可以通过主从复制的方式来同步数据，
 *     然后通过读写分离提高数据库并发处理能力。
 *
 *     其中一个是Master主库，负责写入数据，我们称之为:写库。
 *      其它都是Slave从库，负责读取数据，我们称之为:读库。
 *    当主库进行更新的时候，会自动将数据复制到从库中，而我们在客户端读取数据的时候，会从从库中进行读取。
 *
 *    面对“读多写少”的需求，采用读写分离的方式，可以实现更高的并发访问。
 *    同时,我们还能对从服务器进行负载均衡，
 *    让不同的读请求按照策略均匀地分发到不同的从服务器上，让读取更加顺畅。
 *    读取顺畅的另一个原因,就是减少了锁表的影响，比如我们让主库负责写，
 *    当主库出现写锁的时候，不会影响到从库进行SELECT的读取。
 *
 * 第2个作用就是数据备份。
 *   我们通过主从复制将主库上的数据复制到了从库上,相当于是一种热备份机制，
 *   也就是在主库正常运行的情况下进行的备份，不会影响到服务。
 * 第3个作用是具有高可用性。   比如淘宝，每年的每时每刻 不会出现打不开淘宝，不会出现停机
 *    数据备份实际上是一种冗余的机制，通过这种冗余的方式可以换取数据库的高可用性,
 *    也就是当服务器出现故障或宕机的情况下，可以切换到从服务器上,保证服务的正常运行。
 *    关于高可用性的程度，我们可以用一个指标衡量，即正常可用时间/全年时间。
 *    比如要达到全年9.999%6的时间都可用，
 *    就意味着系统在一年中的不可用时间不得超过365*24*60* (1-99 .999%) =5 .256分钟
 *    (含系统崩溃的时间、日常维护操作导致的停机时间等)，其他时间都需要保持可用的状态。
 *    实际上，更高的高可用性，意味着需要付出更高的成本代价。
 *    在现实中我们需要结合业务需求和成本来进行选择。
 *
 */
